package com.ugoodtech.mdcc.web.common;

import org.springframework.util.Assert;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * Created by Lance Li on 2019-11-20.
 *
 * @author Lance Li
 */
public class BizConstants {

	public static final Long ALL_OPTIONS = -1L;
	public static final String ALL_OPTIONS_STR = "ALL";
	public static final Long day_work_time_question_id = 71L;//天工作时间
	public static final int month_work_day_count = 26;//月工作日
	public static final Long week_wx_question_id = 72L;//周工作天数

	public static final class File {

		public static final String TEMPLATE_PATH = "/var";

	}

	public static final class LocationLevel {

		public static final int PROVINCE = 1;
		public static final String PROVINCE_STR = "PROVINCE";
		public static final int CITY = 2;
		public static final String CITY_STR = "CITY";
		public static final int DISTRICT = 3;
		public static final String DISTRICT_STR = "DISTRICT";
	}

	public static final class Location {

		public static final String REPUBLIC_OF_PEOPLE_CODE = "000000";
		public static final Integer REPUBLIC_OF_PEOPLE_PARENT_ID = 1;
	}

	public static final class Brand {

		public static final String WANG_DA = "望达";
		public static final String XIN_JIN = "新劲莱顺";
		public static final String WANG = "望";
		public static final String DA = "达";
		public static final String XIN = "新";
		public static final String JIN = "劲";
		public static final String LAI = "莱";
		public static final String SHUN = "顺";

	}

	public static final class User {

		public static final String INITIAL_PASSWORD = "888888";
		public static final Integer NOT_MANAGER = 0;
		public static final String NOT_MANAGER_STR = "非管理员";
		public static final Integer IS_MANAGER = 1;
		public static final String IS_MANAGER_STR = "管理员";
		public static final int IS_EMPLOYEE = 0;
		public static final String IS_EMPLOYEE_STR = "工作人员";
		public static final int DEALER = 1;
		public static final String DEALER_STR = "经销商";
		public static final int CLIENT = 2;
		public static final String CLIENT_STR = "客户";
		public static final Integer MALE = 1;
		public static final Integer FEMALE = 2;
		public static final Integer IS_BLOCKED = 1;
		public static final Integer NOT_BLOCKED = 0;
		public static final Long TOKEN_VALIDITY_TIME_SPAN = 3600000000L;
		public static final Long TOKEN_VALIDITY_TIME_EXPIRE_REDIS = 3600000L;

		public static Integer getUserDepartmentTypeConsistentWithIdentification(
				Integer identification) {
			Assert.notNull(identification, "请输入用户身份");
			switch (identification) {
				case User.DEALER:
					return Department.DEALER_DEPARTMENT;
				case User.IS_EMPLOYEE:
					return Department.EMPLOYEE_DEPARTMENT;
				default:
					return null;
			}
		}

	}

	public static final class Department {

		public static final Integer DEALER_DEPARTMENT = 1;
		public static final Integer EMPLOYEE_DEPARTMENT = 0;
	}

	public static final class Authority {

		public static final Integer PLATFORM_PC = 1;
		public static final Integer PLATFORM_WECHAT = 2;
		public static final Integer PLATFORM_ALL = 3;

		public static final List<Long> AUTHORITIES_CHECK = Arrays.asList(38L, 56L, 58L, 59L);
	}

	public static final class Report {


		public static final String REGULAR_REPORT_TIME_LIMITATION = "REGULAR_REPORT_TIME_LIMITATION";

		public static final class ReportStatus {

			public static final Integer STATUS_NOT_NEED = -1;

			public static final Integer NOSTATUS = 0;
			public static final String NOSTATUS_STR = "无状态";//用于精益钣报告
			public static final Integer UNREVIEWED = 1;
			public static final String UNREVIEWED_STR = "未审核";
			public static final Integer VERIFIED = 2;
			public static final String VERIFIED_STR = "审核通过";
			public static final Integer UNVERIFIED = 3;
			public static final String UNVERIFIED_STR = "审核不通过";
			public static final int STILL_IN_PLAN = 4;
			public static final String STILL_IN_PLAN_STR = "计划进行该项工作，尚未开展";
			public static final int NOT_COMPLETED_AND_UNABLE_FOLLOW = 5;
			public static final String NOT_COMPLETED_AND_UNABLE_FOLLOW_STR = "没有完成，无法后续跟进";
			public static final int NOT_COMPLETED_AND_NEED_FOLLOW = 6;
			public static final String NOT_COMPLETED_AND_NEED_FOLLOW_STR = "没有完成，需后续跟进";
			public static final int COMPLETE = 7;
			public static final String COMPLETE_STR = "已完成";
			public static final int COMPLETE_AND_NEED_FOLLOW = 8;
			public static final String COMPLETE_AND_NEED_FOLLOW_STR = "已完成，但需其他部门跟进";
			public static final int HANDLE_COMPLAINT = 21;
			public static final String HANDLE_COMPLAINT_STR = "处理产品问题（投诉）";
			/**
			 * 常规报告状态 处理中=
			 */
			public static final List<Integer> NORMAL_REGULAR_REPORT = Arrays.asList(COMPLETE);
			public static final List<Integer> ERROR_REGULAR_REPORT = Arrays
					.asList(NOT_COMPLETED_AND_UNABLE_FOLLOW, NOT_COMPLETED_AND_NEED_FOLLOW,
							COMPLETE_AND_NEED_FOLLOW, HANDLE_COMPLAINT);
			public static final List<Integer> PENDING_REGULAR_REPORT = Arrays.asList(STILL_IN_PLAN);
			//			public static final Integer DEPARTMENT_FOLLOW_NOT_DESIGNATED = 6;
//			public static final String DEPARTMENT_FOLLOW_NOT_DESIGNATED_STR = "待确认跟进部门";
//			public static final Integer DEPARTMENT_FOLLOW_UNCHECKED = 7;
//			public static final String DEPARTMENT_FOLLOW_UNCHECKED_STR = "待审批跟进部门";
//			public static final Integer DEPARTMENT_FOLLOW_CHECKED = 8;
//			public static final String DEPARTMENT_FOLLOW_CHECKED_STR = "已确认跟进部门";
			public static final Integer NEED_FOLLOWING = 9;
			public static final String NEED_FOLLOWING_STR = "待领取";
			public static final Integer UNDER_FOLLOWING = 10;
			public static final String UNDER_FOLLOWING_STR = "处理中";
			public static final Integer COMPLETED = 11;
			public static final String COMPLETED_STR = "已处理";
			public static final Integer FINISHED = 12;
			public static final String FINISHED_STR = "完成";
			public static final Integer UNFINISHED_NEED_FOLLOWED = 13;
			public static final String UNFINISHED_NEED_FOLLOWED_STR = "未完成，待跟进";
			public static final Integer UNFINISHED_FORWARD = 14;
			public static final String UNFINISHED_FORWARD_STR = "未完成，转交";
			public static final Integer BREAK_OFF = 15;
			public static final String BREAK_OFF_STR = "中断处理";
			public static final Integer UNFINISHED_CANT_FOLLOWED = 17;
			public static final String UNFINISHED_CANT_FOLLOWED_STR = "没有完成，无法后续跟进";

			public static final Integer UNCLAIMED_TIME_OUT = 19;
			public static final String UNCLAIMED_TIME_OUT_STR = "待领取超时";
			public static final Integer PROCESS_TIME_OUT = 20;
			public static final String PROCESS_TIME_OUT_STR = "待领取超时";
			public static final Integer SATISFACTION_NOT_COMPLETE = 0;
			public static final Integer SATISFACTION_IS_COMPLETE = 1;

			public static Integer getRegularReportStatusByAnswer(Long answerId) {
				if (QuestionOptions.RegularReport.STILL_IN_PLAN.contains(answerId)) {
					return STILL_IN_PLAN;
				}
				if (QuestionOptions.RegularReport.NOT_COMPLETED_AND_UNABLE_FOLLOW.contains(answerId)) {
					return NOT_COMPLETED_AND_UNABLE_FOLLOW;
				}
				if (QuestionOptions.RegularReport.NOT_COMPLETED_AND_NEED_FOLLOW.contains(answerId)) {
					return NOT_COMPLETED_AND_NEED_FOLLOW;
				}
				if (QuestionOptions.RegularReport.COMPLETE.contains(answerId)) {
					return COMPLETE;
				}
				if (QuestionOptions.RegularReport.COMPLETE_AND_NEED_FOLLOW.contains(answerId)) {
					return COMPLETE_AND_NEED_FOLLOW;
				}
				if (QuestionOptions.RegularReport.HANDLE_COMPLAINT.contains(answerId)) {
					return HANDLE_COMPLAINT;
				}
				throw new IllegalArgumentException("Can not resolve Regular Report Status " + answerId);
			}

			public static String getRegularReportStatus(Integer status) {
				switch (status) {
					case STILL_IN_PLAN:
						return STILL_IN_PLAN_STR;
					case NOT_COMPLETED_AND_UNABLE_FOLLOW:
						return NOT_COMPLETED_AND_UNABLE_FOLLOW_STR;
					case NOT_COMPLETED_AND_NEED_FOLLOW:
						return NOT_COMPLETED_AND_NEED_FOLLOW_STR;
					case COMPLETE:
						return COMPLETE_STR;
					case COMPLETE_AND_NEED_FOLLOW:
						return COMPLETE_AND_NEED_FOLLOW_STR;
					case HANDLE_COMPLAINT:
						return HANDLE_COMPLAINT_STR;
					default:
						return "";
				}
			}
		}

		/**
		 * 常规报告分配状态
		 */
		public static final class RegularReportAssignment {

			/**
			 * 未领取
			 */
			public static final int NOT_ACHIEVED = 0;
			/**
			 * 已领取
			 */
			public static final int ACHIEVED = 1;
			/**
			 * 未审核
			 */
			public static final int NOT_CHECKED = 0;
			/**
			 * 已审核
			 */
			public static final int IS_CHECKED = 1;
			/**
			 * 未分配部门
			 */
			public static final int UNASSIGNED = 2;
		}

		/**
		 * 常规报告处理记录
		 */
		public static final class RegularReportProcessRecord {

			/**
			 * 审批跟进部门
			 */
			public static final int CHECK_DEPARTMENT_FOLLOW = 1;
			public static final String CHECK_DEPARTMENT_FOLLOW_STR = "审批跟进部门";
			/**
			 * 需其他部门跟进，用于第一次指派跟进
			 */
			public static final int NEED_DEPARTMENT_FOLLOW = 2;
			public static final String NEED_DEPARTMENT_FOLLOW_STR = "需其他部门跟进";
			/**
			 * 需其他部门后续跟进，用户后续再次指派跟进
			 */
			public static final int NEED_DEPARTMENT_FOLLOW_AGAIN = 3;
			/**
			 * 跟进中，未完成
			 */
			public static final int IN_FOLLOW_NOT_COMPLETE = 4;
			public static final String IN_FOLLOW_NOT_COMPLETE_STR = "跟进中，未完成";
			/**
			 * 中断处理
			 */
			public static final int INTERRUPTED = 5;
			public static final String INTERRUPTED_STR = "中断处理";
			/**
			 * 该事项，已完成
			 */
			public static final int COMPLETE = 6;
			public static final String COMPLETE_STR = "该事项，已完成";
			public static final String HANDLE_PENDING = "待处理";
			public static final String USER_PROCESS_DESCRIPTION_UPDATE = "更新了报告状态为: ";
			public static final String USER_PROCESS_DESCRIPTION_CONFIRM = "更新了报告状态为: 确认了需要跟进的部门";
			public static final String USER_PROCESS_DESCRIPTION_SUBMIT = "提交了常规服务报告, 选择了: ";
			public static String NEED_DEPARTMENT_FOLLOW_AGAIN_STR = "需其他部门后续跟进";
			public static String DEPARTMENT_NEED_FOLLOW_STR = "需要跟进部门为: ";

			/**
			 * 用于历史跟进记录模块
			 *
			 * @param type 跟进类型
			 * @return 跟进类型描述
			 */
			public static String getProcessString(int type) {
				switch (type) {
					case CHECK_DEPARTMENT_FOLLOW:
						return CHECK_DEPARTMENT_FOLLOW_STR;
					case NEED_DEPARTMENT_FOLLOW:
						return NEED_DEPARTMENT_FOLLOW_STR;
					case NEED_DEPARTMENT_FOLLOW_AGAIN:
						return NEED_DEPARTMENT_FOLLOW_AGAIN_STR;
					case IN_FOLLOW_NOT_COMPLETE:
						return IN_FOLLOW_NOT_COMPLETE_STR;
					case INTERRUPTED:
						return INTERRUPTED_STR;
					case COMPLETE:
						return COMPLETE_STR;
					default:
						throw new IllegalArgumentException("Can not resolve " + type);
				}
			}

			/**
			 * 获取常规报告跟进后处理状态的描述信息整型值, 用于添加记录
			 *
			 * @param disposeStatus 常规报告处理状态int值
			 * @return 常规报告处理状态字符串
			 */
			public static Integer getProcessTypeByDisposeStatus(Integer disposeStatus) {
				switch (disposeStatus) {
					case RegularReportProcess.FOLLOWING_NOT_COMPLETE:
						return IN_FOLLOW_NOT_COMPLETE;
					case RegularReportProcess.INTERRUPTED:
						return INTERRUPTED;
					case RegularReportProcess.NEED_OTHER_DEPARTMENT_FOLLOW:
						return NEED_DEPARTMENT_FOLLOW;
					case RegularReportProcess.COMPLETED:
						return COMPLETE;
					default:
						throw new IllegalArgumentException("Can not resolve disposeStatus" + disposeStatus);
				}
			}

			/**
			 * 获取常规报告跟进后处理状态的描述信息字符串, 用于添加记录
			 *
			 * @param disposeStatus 常规报告处理状态int值
			 * @return 常规报告处理状态字符串
			 */
			public static String getAssignmentDescriptionStr(Integer disposeStatus) {
				switch (disposeStatus) {
					case RegularReportProcess.FOLLOWING_NOT_COMPLETE:
						return IN_FOLLOW_NOT_COMPLETE_STR;
					case RegularReportProcess.INTERRUPTED:
						return INTERRUPTED_STR;
					case RegularReportProcess.NEED_OTHER_DEPARTMENT_FOLLOW:
						return NEED_DEPARTMENT_FOLLOW_STR;
					case RegularReportProcess.COMPLETED:
						return COMPLETE_STR;
					default:
						throw new IllegalArgumentException("Can not resolve disposeStatus" + disposeStatus);
				}
			}

		}

		/**
		 * 常规报告处理常量
		 */
		public static final class RegularReportProcess {

//			/**
//			 * 未处理
//			 */
//			public static final int UNHANDLED = 0;
			/**
			 * 处理中，未完成
			 */
			public static final int FOLLOWING_NOT_COMPLETE = 1;
			/**
			 * 中断处理
			 */
			public static final int INTERRUPTED = 2;
			/**
			 * 需其他部门跟进
			 */
			public static final int NEED_OTHER_DEPARTMENT_FOLLOW = 3;
			/**
			 * 已完成
			 */
			public static final int COMPLETED = 4;
			/**
			 * 所有状态的报告
			 */
			public static final int ALL = 5;

		}

		public static final class RegularReportFinalStatus {

			public static final int NEED_HANDLE = 0;
			public static final String NEED_HANDLE_STR = "待处理";

			public static final int FOLLOWING = 1;
			public static final String FOLLOWING_STR = "跟进中, 未完成";

			public static final int INTERRUPTED = 2;
			public static final String INTERRUPTED_STR = "中断处理";

			public static final int NEED_OTHER_DEPARTMENT_FOLLOWING = 3;
			public static final String NEED_OTHER_DEPARTMENT_FOLLOWING_STR = "需其他部门跟进";

			public static final int COMPLETE = 4;
			public static final String COMPLETE_STR = "该事项, 已完成";

			public static final int ALL_COMPLETE = 5;
			public static final String ALL_COMPLETE_STR = "该报告已完成";

			public static Integer getFinalStatusByProcessStatus(Integer processStatus) {
				switch (processStatus) {
					case RegularReportProcess.FOLLOWING_NOT_COMPLETE:
						return FOLLOWING;
					case RegularReportProcess.INTERRUPTED:
						return INTERRUPTED;
					case RegularReportProcess.NEED_OTHER_DEPARTMENT_FOLLOW:
						return NEED_OTHER_DEPARTMENT_FOLLOWING;
					case RegularReportProcess.COMPLETED:
						return COMPLETE;
					default:
						throw new IllegalArgumentException(
								"Can not resolve process status of " + processStatus);
				}
			}

			public static String getFinalStatusStrByFinalStatus(Integer finalStatus) {
				switch (finalStatus) {
					case NEED_HANDLE:
						return NEED_HANDLE_STR;
					case FOLLOWING:
						return FOLLOWING_STR;
					case INTERRUPTED:
						return INTERRUPTED_STR;
					case NEED_OTHER_DEPARTMENT_FOLLOWING:
						return NEED_OTHER_DEPARTMENT_FOLLOWING_STR;
					case COMPLETE:
						return COMPLETE_STR;
					default:
						throw new IllegalArgumentException(
								"Can not resolve final status of " + finalStatus);
				}
			}

		}

		public static final class RegularReportEditRecord {

			public static final int SUBMIT_REPORT = 1;
			public static final String SUBMIT_REPORT_STR = "修改为提交报告";
			public static final int MODIFY_ANSWER = 2;
			public static final String MODIFY_ANSWER_STR = "修改题目";

			public static String getEditRecordStringByType(Integer type) {
				switch (type) {
					case SUBMIT_REPORT:
						return SUBMIT_REPORT_STR;
					case MODIFY_ANSWER:
						return MODIFY_ANSWER_STR;
					default:
						throw new IllegalArgumentException("Can not resolve edit record type of " + type);
				}
			}

			public static String getEditRecordNote(Integer type) {
				switch (type) {
					case SUBMIT_REPORT:
						return "修改了计划报告";
					case MODIFY_ANSWER:
						return "修改了题目";
					default:
						throw new IllegalArgumentException("Can not resolve edit record type of " + type);
				}

			}
		}

		public static final class ReportType {

			public static final int CLIENT_INFO_REPORT = 0;
			public static final String CLIENT_INFO_REPORT_STR = "客户资料";
			public static final int REGULAR_REPORT = 1;
			public static final String REGULAR_REPORT_STR = "常规报告";
			public static final int LEAN_SHEET_SPRAY_REPORT = 2;
			public static final String LEAN_SHEET_SPRAY_REPORT_STR = "精益钣喷报告";
			public static final int COMPLAINT_REPORT = 3;
			public static final String COMPLAINT_REPORT_STR = "投诉报告";
			public static final int SATISFACTION_REPORT = 4;
			public static final String SATISFACTION_REPORT_STR = "满意度报告";
			public static final int COMPLAINT_REPORT_SOLUTION = 5;
			public static final String COMPLAINT_REPORT_SOLUTION_STR = "投诉解决方案";

		}

		public static final class SatisfactionReport {

			public static final int IS_WRITTEN = 1;

			public static final int NOT_WRITTEN = 0;

			public static final int NOT_SOLVED = 0;

			public static final int IS_SOLVED = 1;

			public static final int IS_SMS_SENT = 1;

			public static final int NOT_SMS_SENT = 0;

			public static final int IS_GENERATED = 1;

			public static final int NOT_GENERATED = 0;

			public static final int UNDER_SIXTY_SCORES_INT = 1;
			public static final int SIXTY_TO_ONE_HUNDRED_SCORES_INT = 2;
			public static final int ONE_HUNDRED_SCORES_INT = 3;

		}

	}

	public static final class Question {

		public static class QuestionType {

			public static final Integer BLANK_FILL = 0;
			public static final Integer UPLOAD_SINGLE_PHOTO = 4;
			public static final Integer SELECT_PROVINCE = 5;
			public static final Integer SELECT_YEAR_MONTH_DAY = 7;
			public static final Integer RESOLVE = 8;
			public static final Integer UPLOAD_PICTURE_NO_LIMITATION = 9;
			public static final Integer SELECT_CITY = 10;
			public static final Integer PHONE = 11;
			public static final Integer NUMBER = 12;
			public static final Integer SELECT_DEALER = 13;
			public static final Integer SELECT_YEAR_MONTH = 14;
			public static final Integer SELECT_YEAR_MONTH_TIME = 15;

			public static final List<Integer> TYPE_NOT_NEED_OTHER_CONTENT = Arrays
					.asList(BLANK_FILL, UPLOAD_SINGLE_PHOTO, SELECT_PROVINCE, SELECT_CITY,
							SELECT_YEAR_MONTH_DAY, RESOLVE, UPLOAD_PICTURE_NO_LIMITATION, PHONE, NUMBER,
							SELECT_DEALER, SELECT_YEAR_MONTH, SELECT_YEAR_MONTH_TIME);

		}

		/**
		 * 维修站报告
		 */
		public static final class StationReport {

			/**
			 * 客户资料文模板位置id
			 */
			public static final int COLLECTION_LOCATION_ID = 1;
			/**
			 * 城市
			 */
			public static final long CITY_TECH = 174L;
			public static final long CITY_SALE = 217L;
			public static final List<Long> CITY = Arrays.asList(CITY_SALE, CITY_TECH);
			public static final long[] CITY_ARRAY = new long[]{CITY_SALE, CITY_TECH};
			public static final String CITY_STR = "城市";
			/**
			 * 省份
			 */
			public static final long PROVINCE_TECH = 173L;
			public static final long PROVINCE_SALE = 216L;
			public static final List<Long> PROVINCE = Arrays.asList(PROVINCE_SALE, PROVINCE_TECH);
			public static final long[] PROVINCE_ARRAY = new long[]{PROVINCE_SALE, PROVINCE_TECH};
			/**
			 * 维修站名称
			 */
			public static final long STATION_NAME_TECH = 175L;
			public static final long STATION_NAME_SALE = 218L;
			public static final List<Long> STATION_NAME = Arrays
					.asList(STATION_NAME_SALE, STATION_NAME_TECH);
			public static final long[] STATION_NAME_ARRAY = new long[]{STATION_NAME_SALE,
					STATION_NAME_TECH};
			/**
			 * 维修站地址
			 */
			public static final long STATION_ADDRESS_TECH = 186L;
			public static final long STATION_ADDRESS_SALE = 219L;
			public static final List<Long> STATION_ADDRESS = Arrays
					.asList(STATION_ADDRESS_SALE, STATION_ADDRESS_TECH);
			public static final long[] STATION_ADDRESS_ARRAY = new long[]{STATION_ADDRESS_SALE,
					STATION_ADDRESS_TECH};
			/**
			 * 客户状态
			 */
			public static final long CLIENT_STATUS_TECH = 184L;
			public static final long CLIENT_STATUS_SALE = 220L;
			public static final List<Long> CLIENT_STATUS = Arrays
					.asList(CLIENT_STATUS_SALE, CLIENT_STATUS_TECH);
			public static final long[] CLIENT_STATUS_ARRAY = new long[]{CLIENT_STATUS_SALE,
					CLIENT_STATUS_TECH};
			/**
			 * 客户类型
			 */
			public static final long CLIENT_TYPE_TECH = 185L;
			public static final long CLIENT_TYPE_SALE = 221L;
			public static final List<Long> CLIENT_TYPE = Arrays
					.asList(CLIENT_TYPE_SALE, CLIENT_TYPE_TECH);
			public static final long[] CLIENT_TYPE_ARRAY = new long[]{CLIENT_TYPE_SALE, CLIENT_TYPE_TECH};
			/**
			 * 维修站联系人姓名
			 */
			public static final long CONTACTS_NAME_TECH = 2L;
			public static final long CONTACTS_NAME_SALE = 223L;
			public static final List<Long> CONTACTS_NAME = Arrays
					.asList(CONTACTS_NAME_SALE, CONTACTS_NAME_TECH);
			public static final long[] CONTACTS_NAME_ARRAY = new long[]{CONTACTS_NAME_SALE,
					CONTACTS_NAME_TECH};
			/**
			 * 维修站编号
			 */
			public static final long STATION_CODE_TECH = 181L;
			public static final long STATION_CODE_SALE = 222L;
			public static final List<Long> STATION_CODE = Arrays
					.asList(STATION_CODE_TECH, STATION_CODE_SALE);
			public static final long[] STATION_CODE_ARRAY = new long[]{STATION_CODE_TECH,
					STATION_CODE_SALE};
			/**
			 * 维修站联系人职位
			 */
			public static final long STATION_POSITION_TECH = 3L;
			public static final long STATION_POSITION_SALE = 224L;
			public static final List<Long> STATION_POSITION = Arrays
					.asList(STATION_POSITION_TECH, STATION_POSITION_SALE);
			public static final long[] STATION_POSITION_ARRAY = new long[]{STATION_POSITION_TECH,
					STATION_POSITION_SALE};
			/**
			 * 联系人手机
			 */
			public static final long CONTACTS_PHONE_TECH = 4L;
			public static final long CONTACTS_PHONE_SALE = 225L;
			public static final List<Long> CONTACTS_PHONE = Arrays
					.asList(CONTACTS_PHONE_TECH, CONTACTS_PHONE_SALE);
			public static final long[] CONTACTS_PHONE_ARRAY = new long[]{CONTACTS_PHONE_TECH,
					CONTACTS_PHONE_TECH};
			/**
			 * 维修站外体照片
			 */
			public static final long STATION_EXTERNAL_PICTURE_TECH = 5L;
			public static final long STATION_EXTERNAL_PICTURE_SALE = 226L;
			public static final List<Long> STATION_EXTERNAL_PICTURE = Arrays
					.asList(STATION_EXTERNAL_PICTURE_TECH, STATION_EXTERNAL_PICTURE_SALE);
			public static final long[] STATION_EXTERNAL_PICTURE_ARRAY = new long[]{
					STATION_EXTERNAL_PICTURE_TECH, STATION_EXTERNAL_PICTURE_SALE};
			/**
			 * 导入维修站联系人名片
			 */
			public static final long CONTACTS_CARD_TECH = 6L;
			public static final long CONTACTS_CARD_SALE = 227L;
			public static final List<Long> CONTACTS_CARD = Arrays
					.asList(CONTACTS_CARD_SALE, CONTACTS_CARD_TECH);
			public static final long[] CONTACTS_CARD_ARRAY = new long[]{CONTACTS_CARD_SALE,
					CONTACTS_CARD_TECH};
			/**
			 * 该维修站类型
			 */
			public static final long STATION_TYPE_TECH = 7L;
			public static final long STATION_TYPE_SALE = 228L;
			public static final List<Long> STATION_TYPE = Arrays
					.asList(STATION_TYPE_SALE, STATION_TYPE_TECH);
			public static final long[] STATION_TYPE_ARRAY = new long[]{STATION_TYPE_SALE,
					STATION_TYPE_TECH};
			/**
			 * 维修站具体品牌
			 */
			public static final long STATION_BRAND_TECH = 8L;
			public static final long STATION_BRAND_SALE = 229;
			public static final List<Long> STATION_BRAND = Arrays
					.asList(STATION_BRAND_TECH, STATION_BRAND_SALE);
			public static final long[] STATION_BRAND_ARRAY = new long[]{STATION_BRAND_TECH,
					STATION_BRAND_SALE};
			/**
			 * 维修站所属集团
			 */
			public static final long STATION_COMPANY_GROUP_TECH = 9L;
			public static final long STATION_COMPANY_GROUP_SALE = 230L;
			public static final List<Long> STATION_COMPANY_GROUP = Arrays
					.asList(STATION_COMPANY_GROUP_TECH, STATION_COMPANY_GROUP_SALE);
			public static final long[] STATION_COMPANY_GROUP_ARRAY = new long[]{
					STATION_COMPANY_GROUP_TECH, STATION_COMPANY_GROUP_SALE};
			/**
			 * 维修站每月钣喷维修钣件数
			 */
			public static final long PAINT_NUMBER_MONTHLY_TECH = 10L;
			public static final long PAINT_NUMBER_MONTHLY_SALE = 231L;
			public static final List<Long> PAINT_NUMBER_MONTHLY = Arrays
					.asList(PAINT_NUMBER_MONTHLY_TECH, PAINT_NUMBER_MONTHLY_SALE);
			public static final long[] PAINT_NUMBER_MONTHLY_ARRAY = new long[]{
					PAINT_NUMBER_MONTHLY_TECH, PAINT_NUMBER_MONTHLY_SALE};
			/**
			 * 每月钣喷维修台次
			 */
			public static final long REPAIR_TIMES_MONTHLY_TECH = 11L;
			public static final long REPAIR_TIMES_MONTHLY_SALE = 232L;
			public static final List<Long> REPAIR_TIMES_MONTHLY = Arrays
					.asList(REPAIR_TIMES_MONTHLY_TECH, REPAIR_TIMES_MONTHLY_SALE);
			public static final long[] REPAIR_TIMES_MONTHLY_ARRAY = new long[]{REPAIR_TIMES_MONTHLY_TECH,
					REPAIR_TIMES_MONTHLY_SALE};
			/**
			 * 维修站油漆月用量
			 */
			public static final long PAINT_COST_MONTHLY_TECH = 12L;
			public static final long PAINT_COST_MONTHLY_SALE = 233L;
			public static final List<Long> PAINT_COST_MONTHLY = Arrays
					.asList(PAINT_COST_MONTHLY_TECH, PAINT_COST_MONTHLY_SALE);
			public static final long[] PAINT_COST_MONTHLY_ARRAY = new long[]{PAINT_COST_MONTHLY_TECH,
					PAINT_COST_MONTHLY_SALE};
			/**
			 * 油漆品牌
			 */
			public static final long OIL_PAINT_BRAND_TECH = 13L;
			public static final long OIL_PAINT_BRAND_SALE = 234L;
			public static final List<Long> OIL_PAINT_BRAND = Arrays
					.asList(OIL_PAINT_BRAND_TECH, OIL_PAINT_BRAND_SALE);
			public static final long[] OIL_PAINT_BRAND_ARRAY = new long[]{OIL_PAINT_BRAND_TECH,
					OIL_PAINT_BRAND_SALE};
			/**
			 * 品牌定位
			 */
			public static final long BRAND_ORIENTATION_TECH = 182L;
			public static final long BRAND_ORIENTATION_SALE = 235L;
			public static final List<Long> BRAND_ORIENTATION = Arrays
					.asList(BRAND_ORIENTATION_TECH, BRAND_ORIENTATION_SALE);
			public static final long[] BRAND_ORIENTATION_ARRAY = new long[]{BRAND_ORIENTATION_TECH,
					BRAND_ORIENTATION_SALE};
			/**
			 * 油漆服务商
			 */
			public static final long OIL_PAINT_SUPPLIER_TECH = 14L;
			public static final long OIL_PAINT_SUPPLIER_SALE = 236L;
			public static final List<Long> OIL_PAINT_SUPPLIER = Arrays
					.asList(OIL_PAINT_SUPPLIER_TECH, OIL_PAINT_SUPPLIER_SALE);
			public static final long[] OIL_PAINT_SUPPLIER_ARRAY = new long[]{OIL_PAINT_SUPPLIER_TECH,
					OIL_PAINT_SUPPLIER_SALE};
			/**
			 * 前处理人数
			 */
			public static final long PEOPLE_AMOUNT_IN_PRE_DEALING_TECH = 15L;
			/**
			 * 面漆人数
			 */
			public static final long PAINTING_CUT_PEOPLE_AMOUNT_TECH = 16L;
			/**
			 * 抛光人数
			 */
			public static final long POLISHING_PEOPLE_AMOUNT_TECH = 17L;
			/**
			 * 调漆人数
			 */
			public static final long STIR_PAINTING_PEOPLE_AMOUNT_TECH = 18L;
			/**
			 * 喷漆房数量（个）
			 */
			public static final long PAINTING_ROOM_AMOUNT_TECH = 19L;
			/**
			 * 气压
			 */
			public static final long AIR_PRESSURE = 20L;
			/**
			 * 光亮度
			 */
			public static final long BRIGHTNESS = 21L;
			/**
			 * 洁净度
			 */
			public static final long CLEANNESS = 39L;
			/**
			 * 可否进行加温
			 */
			public static final long IS_ABLE_TO_HEAT = 22L;
			/**
			 * 加温类型
			 */
			public static final long HEATING_TYPE = 23L;
			/**
			 * 空压机类型
			 */
			public static final long AIR_PRESSURE_TYPE = 24L;
			/**
			 * 是否安装冷干机
			 */
			public static final long HAS_INSTALLED_COOLER = 25L;
			/**
			 * 压缩空气洁净度
			 */
			public static final long CLEANNESS_OF_PRESSED_AIR = 26L;
			/**
			 * 喷漆房内有没有油水分离器
			 */
			public static final long HAS_OIL_WATER_SEPARATOR_IN_PAINTING_ROOM = 27L;

			/**
			 * 打磨设备类型
			 */
			public static final long POLISHING_MACHINE_TYPE = 28L;

			/**
			 * 圆形打磨机数量
			 */
			public static final long ROUND_POLISHING_MACHINE_AMOUNT = 29L;

			/**
			 * 长方形打磨机数量
			 */
			public static final long RECT_TANGLE_POLISHING_MACHINE_AMOUNT = 30L;

			/**
			 * 打磨机质量
			 */
			public static final long POLISHING_MACHINE_QUALITY = 32L;

			/**
			 * 打磨机吸尘能力
			 */
			public static final long POLISHING_MACHINE_IMPORTING_ABILITY = 33L;

			/**
			 * 该维修站红外线烤灯状况，配备台数
			 */
			public static final long INFRARED_RAY_AMOUNT = 34L;

			/**
			 * HVLP喷枪（把）
			 */
			public static final long HVLPAMOUNT = 35L;

			/**
			 * 传统喷枪（把）
			 */
			public static final long TRADITION_PUSHING_AMOUNT = 36L;

			/**
			 * 中涂喷枪（把）
			 */
			public static final long SPRAY_MACHINE_OF_MID_AMOUNT = 37L;

			/**
			 * 喷枪喷涂质量
			 */
			public static final long SPRAY_QUALITY = 38L;

			/**
			 * 底漆品牌
			 */
			public static final long BASIC_PAINTING_BRAND = 40L;

			/**
			 * 底漆型号
			 */
			public static final long BASIC_PAINTING_TYPE = 41L;

			/**
			 * 原子灰品牌
			 */
			public static final long ATOM_GREY_BRAND = 42L;

			/**
			 * 原子灰型号
			 */
			public static final long ATOM_GREY_TYPE = 43L;

			/**
			 * 中涂底漆品牌
			 */
			public static final long BASIC_PAINTING_BRAND_OF_MID = 44L;

			/**
			 * 中涂底漆型号
			 */
			public static final long BASIC_PAINTING_TYPE_OF_MID = 45L;

			/**
			 * 底色漆品牌
			 */
			public static final long BASIC_COLOR_PAINTING_BRAND = 46L;
			/**
			 * 底色漆品牌
			 */
			public static final long BASIC_COLOR_PAINTING_TYPE = 47L;
			/**
			 * 清漆品牌
			 */
			public static final long CLEAN_PAINTING_BRAND = 48L;

			/**
			 * 清漆型号
			 */
			public static final long CLEANING_PAINTING_TYPE = 49L;

			/**
			 * 中涂底漆前是否使用水磨
			 */
			public static final long HAS_USED_WATER_POLISHING_BEFORE_PAINTING_BASIC_PAINTING = 50L;

			/**
			 * 颜色准确度
			 */
			public static final long COLOR_ACCURACY = 51L;

			/**
			 * 最常用的颜色查询工具
			 */
			public static final long COLOR_SEARCH_TOOL_MOST_USE = 52L;

			/**
			 * AkzoNobel服务商人员来店服务时使用的颜色工具（多选）
			 */
			public static final long COLOR_TOOLS_USED_AT_ARRIVAL = 53L;

			/**
			 * 返工率最高的颜色（必须填写色号）
			 */
			public static final long COLOR_FOR_MOST_RETURNING = 54L;

			/**
			 * 配方非常稳定的颜色（必须填写色号）
			 */
			public static final long THE_MOST_STABLE_COLOR = 55L;

			/**
			 * 问题类型
			 */
			public static final long QUESTION_TYPE = 56L;

			/**
			 * 问题类型具体说明
			 */
			public static final long QUESTION_TYPE_DETAIL = 57L;

			/**
			 * 诉求类型
			 */
			public static final long REQUEST_TYPE = 59L;

			/**
			 * 诉求类型具体说明
			 */
			public static final long REQUEST_TYPE_DETAIL = 60L;

			/**
			 * 该维修站目前钣喷维修流程中面对最大问题
			 */
			public static final long BIGGEST_PROBLEM_IN_PROCESS_TECH = 56L;
			public static final long BIGGEST_PROBLEM_IN_PROCESS_SALE = 247L;
			public static final List<Long> BIGGEST_PROBLEM_IN_PROCESS = Arrays
					.asList(BIGGEST_PROBLEM_IN_PROCESS_TECH, BIGGEST_PROBLEM_IN_PROCESS_SALE);
			/**
			 * 维修站主要诉求
			 */
			public static final long STATION_REQUEST_TECH = 59L;
			public static final long STATION_REQUEST_SALE = 250L;
			public static final List<Long> STATION_REQUEST = Arrays
					.asList(STATION_REQUEST_TECH, STATION_REQUEST_SALE);
		}

		public static class RegularReport {

//			public static final List<Long> MARKS = Arrays.asList(10L, 10L, 10L, 10L, 10L);
			/**
			 * 省份
			 */
			public static final long PROVINCES = 212L;
			/**
			 * 服务内容结果
			 */
			public static final long RESULT_TECH = 156L;
			public static final long RESULT_SALE = 213L;
			public static final List<Long> RESULT = Arrays.asList(RESULT_SALE, RESULT_TECH);
			/**
			 * 重点工作分类销售和工作人员
			 */
			public static final long JOB_CLASSIFICATION_SALE = 155L;
			public static final long JOB_CLASSIFICATION_TECH = 212L;
			/**
			 * 服务自我评估
			 */
			public static final long SELF_EVALUATION_TECH = 157L;
			public static final long SELF_EVALUATION_SALE = 214L;
			public static final List<Long> SELF_EVALUATION = Arrays
					.asList(SELF_EVALUATION_SALE, SELF_EVALUATION_TECH);
			public static final long[] SELF_EVALUATION_ARRAY = new long[]{SELF_EVALUATION_SALE,
					SELF_EVALUATION_TECH};
			/**
			 * 服务开始时间
			 */
			public static final long SERVICE_START_TIME_TECH = 176L;
			public static final long SERVICE_START_TIME_SALE = 207L;
			public static final List<Long> SERVICE_START_TIME = Arrays
					.asList(SERVICE_START_TIME_SALE, SERVICE_START_TIME_TECH);
			public static final long[] SERVICE_START_TIME_ARRAY = {SERVICE_START_TIME_SALE,
					SERVICE_START_TIME_TECH};
			/**
			 * 服务结束时间
			 */
			public static final long SERVICE_END_TIME_TECH = 177L;
			public static final long SERVICE_END_TIME_SALE = 208L;
			public static final List<Long> SERVICE_END_TIME = Arrays
					.asList(SERVICE_END_TIME_TECH, SERVICE_END_TIME_SALE);
			/**
			 * 服务项目
			 */
			public static final long SERVICE_PROJECT_TECH = 155L;
			public static final long SERVICE_PROJECT_SALE = 212L;
			public static final List<Long> SERVICE_PROJECT = Arrays
					.asList(SERVICE_PROJECT_TECH, SERVICE_PROJECT_SALE);
			/**
			 * 联系人电话
			 */
			public static final long CONTACT_PHONE_TECH = 180L;
			public static final long CONTACT_PHONE_SALE = 211L;
			public static final List<Long> CONTACT_PHONE = Arrays
					.asList(CONTACT_PHONE_TECH, CONTACT_PHONE_SALE);
			/**
			 * 联系人姓名
			 */
			public static final long CONTACT_NAME_TECH = 178L;
			public static final long CONTACT_NAME_SALE = 209L;
			public static final List<Long> CONTACT_NAME = Arrays
					.asList(CONTACT_NAME_TECH, CONTACT_NAME_SALE);
			/**
			 * 联系人职位
			 */
			public static final long CONTACT_JOB_POSITION_TECH = 179L;
			public static final long CONTACT_JOB_POSITION_SALE = 210L;
			public static final List<Long> CONTACT_JOB_POSITION = Arrays
					.asList(CONTACT_JOB_POSITION_TECH, CONTACT_JOB_POSITION_SALE);
			/**
			 * 图片
			 */
			public static final long PHOTO_TECH = 158L;
			public static final long PHOTO_SALE = 215L;
			public static final List<Long> PHOTO = Arrays.asList(PHOTO_TECH, PHOTO_SALE);

			/**
			 * 客户类型答案
			 */
			public static final List<String> CLIENT_TYPES = new ArrayList<>();
			public static final String STEAL_PAINT_STR = "钣喷中心(BPC)";
			public static final String FBS_STR = "连锁维修站(FBS)";
			public static final String FOUR_S_STR = "4S店(4S)";
			public static final String IBS_STR = "独立维修站(IBS)";
			public static final String DEALER_STR = "经销商";

			static {
				CLIENT_TYPES.add(STEAL_PAINT_STR);
				CLIENT_TYPES.add(FBS_STR);
				CLIENT_TYPES.add(FOUR_S_STR);
				CLIENT_TYPES.add(IBS_STR);
				CLIENT_TYPES.add(DEALER_STR);
			}

		}

		public static class SatisfactionReport {

			/**
			 * 满意度反馈
			 */
			public static final long SATISFACTION_REFLECTION_TECH = 164L;
			public static final long SATISFACTION_REFLECTION_SALE = 164L;

			/**
			 * 分数题目
			 */
			public static final long FIRST_MARK = 159L;
			public static final long SECOND_MARK = 160L;
			public static final long THIRD_MARK = 161L;
			public static final long FORTH_MARK = 166L;
			public static final long FIFTH_MARK = 162L;
			public static final long SIXTH_MARK = 163L;
			public static final long SEVENTH_MARK = 164L;

			public static final List<Long> MARKS = Arrays
					.asList(FIRST_MARK, SECOND_MARK, THIRD_MARK, FORTH_MARK, FIFTH_MARK, SIXTH_MARK,
							SEVENTH_MARK);

		}

	}

	public static final class QuestionOptions {

		public static final class AnswerType {

			public static final int SIMPLE_DATE = 7;

			public static final int COMPLETE_DATE = 15;

			public static final int DATE_WITH_YEAR_AND_MONTH = 14;
		}

		public static final class StationReport {

			public static final long CLIENT_TYPE_OTHER_TECH = 366L;
			public static final long CLIENT_TYPE_OTHER_SALE = 474L;
			public static final List<Long> CLIENT_TYPE_OTHER = Arrays
					.asList(CLIENT_TYPE_OTHER_TECH, CLIENT_TYPE_OTHER_SALE);
			public static final long CLIENT_STATUS_OTHER_TECH = 362L;
			public static final long CLIENT_STATUS_OTHER_SALE = 470L;
			public static final List<Long> CLIENT_STATUS_OTHER = Arrays
					.asList(CLIENT_STATUS_OTHER_TECH, CLIENT_STATUS_OTHER_SALE);
			public static final long OIL_PAINT_BRAND_OTHER_TECH = 280L;
			public static final long OIL_PAINT_BRAND_OTHER_SALE = 487L;
			public static final List<Long> OIL_PAINT_BRAND_OTHER = Arrays
					.asList(OIL_PAINT_BRAND_OTHER_TECH, OIL_PAINT_BRAND_OTHER_SALE);
			public static final long STATION_BRAND_OTHER_TECH = 280L;
			public static final long STATION_BRAND_OTHER_SALE = 487L;
			public static final List<Long> STATION_BRAND_OTHER = Arrays
					.asList(STATION_BRAND_OTHER_TECH, STATION_BRAND_OTHER_SALE);
			public static final long BIGGEST_PROBLEM_IN_PROCESS_OTHER_TECH = 266L;
			public static final long BIGGEST_PROBLEM_IN_PROCESS_OTHER_SALE = 525L;
			public static final List<Long> BIGGEST_PROBLEM_IN_PROCESS_OTHER = Arrays
					.asList(BIGGEST_PROBLEM_IN_PROCESS_OTHER_TECH, BIGGEST_PROBLEM_IN_PROCESS_OTHER_SALE);
			public static final long STATION_REQUEST_OTHER_TECH = 272L;
			public static final long STATION_REQUEST_OTHER_SALE = 534L;
			public static final List<Long> STATION_REQUEST_OTHER = Arrays
					.asList(STATION_REQUEST_OTHER_TECH, STATION_REQUEST_OTHER_SALE);
		}

		public static final class RegularReport {

			/**
			 * 常规报告状态选项
			 */
			public static final long STILL_IN_PLAN_TECH = 354L;
			public static final long STILL_IN_PLAN_SALE = 460;
			public static final List<Long> STILL_IN_PLAN = Arrays
					.asList(STILL_IN_PLAN_SALE, STILL_IN_PLAN_TECH);
			public static final long NOT_COMPLETED_AND_UNABLE_FOLLOW_TECH = 179L;
			public static final long NOT_COMPLETED_AND_UNABLE_FOLLOW_SALE = 461;
			public static final List<Long> NOT_COMPLETED_AND_UNABLE_FOLLOW = Arrays
					.asList(NOT_COMPLETED_AND_UNABLE_FOLLOW_TECH, NOT_COMPLETED_AND_UNABLE_FOLLOW_SALE);
			public static final long NOT_COMPLETED_AND_NEED_FOLLOW_TECH = 180L;
			public static final long NOT_COMPLETED_AND_NEED_FOLLOW_SALE = 462;
			public static final List<Long> NOT_COMPLETED_AND_NEED_FOLLOW = Arrays
					.asList(NOT_COMPLETED_AND_NEED_FOLLOW_TECH, NOT_COMPLETED_AND_NEED_FOLLOW_SALE);
			public static final long COMPLETE_TECH = 181L;
			public static final long COMPLETE_SALE = 463;
			public static final List<Long> COMPLETE = Arrays
					.asList(COMPLETE_TECH, COMPLETE_SALE);
			public static final long COMPLETE_AND_NEED_FOLLOW_TECH = 182L;
			public static final long COMPLETE_AND_NEED_FOLLOW_SALE = 464;
			public static final List<Long> COMPLETE_AND_NEED_FOLLOW = Arrays
					.asList(COMPLETE_AND_NEED_FOLLOW_SALE, COMPLETE_AND_NEED_FOLLOW_TECH);
			public static final String COMPLETE_AND_NEED_FOLLOW_STR = "已完成，需其他部门跟进：";
			public static final long HANDLE_COMPLAINT_TECH = 246L;
			public static final long HANDLE_COMPLAINT_SALE = 465L;
			public static final List<Long> HANDLE_COMPLAINT = Arrays
					.asList(HANDLE_COMPLAINT_TECH, HANDLE_COMPLAINT_SALE);
			public static final long SERVICE_TARGET_OTHER_TECH = 191;
			public static final long SERVICE_TARGET_OTHER_SALE = 459L;
			public static final List<Long> SERVICE_TARGET_OTHER = Arrays
					.asList(SERVICE_TARGET_OTHER_SALE, SERVICE_TARGET_OTHER_TECH);
		}
	}

	public static final class PerformancePlan {

		public static final int VRP = 0;
		public static final String VRP_STR = "VRP";
		public static final int WAN_DA = 1;
		public static final String WAN_DA_STR = "Wanda";
		public static final int OPERATION_TYPE_PLAN = 0;
		public static final String OPERATION_TYPE_PLAN_STR = "计划";
		public static final int OPERATION_TYPE_REALISTIC = 2;
		public static final String OPERATION_TYPE_REALISTIC_STR = "实际";
		public static final int OPERATION_TYPE_FORECAST = 1;
		public static final String OPERATION_TYPE_FORECAST_STR = "预测";
		public static final int PROJECT_COLLECTION = 0;
		public static final String PROJECT_COLLECTION_STR = "集采";
		public static final int PROJECT_NOT_COLLECTION = 1;
		public static final String PROJECT_NOT_COLLECTION_STR = "非集采";
		public static final int PROJECT_SALE_AMOUNT = 2;
		public static final String PROJECT_SALE_AMOUNT_STR = "销售额合计";
		public static final int PROJECT_BALANCE = 3;
		public static final String PROJECT_BALANCE_STR = "达成差额";
		public static final int PROJECT_RATE = 4;
		public static final String PROJECT_RATE_STR = "达成率";
		public static final int PROJECT_COMPARISION = 5;
		public static final String PROJECT_COMPARISION_STR = "与往年相比";

		public static final int INITIAL_VERSION = 0;

		public static String getOperationType(Integer operationType) {
			switch (operationType) {
				case OPERATION_TYPE_PLAN:
					return OPERATION_TYPE_PLAN_STR;
				case OPERATION_TYPE_FORECAST:
					return OPERATION_TYPE_FORECAST_STR;
				case OPERATION_TYPE_REALISTIC:
					return OPERATION_TYPE_REALISTIC_STR;
				default:
					return "";
			}
		}

		public static String getBrand(Integer brand) {
			switch (brand) {
				case VRP:
					return VRP_STR;
				case WAN_DA:
					return WAN_DA_STR;
				default:
					return "";
			}
		}

		public static String getProjectString(Integer project) {
			switch (project) {
				case PROJECT_COLLECTION:
					return PROJECT_COLLECTION_STR;
				case PROJECT_NOT_COLLECTION:
					return PROJECT_NOT_COLLECTION_STR;
				case PROJECT_SALE_AMOUNT:
					return PROJECT_SALE_AMOUNT_STR;
				case PROJECT_BALANCE:
					return PROJECT_BALANCE_STR;
				case PROJECT_RATE:
					return PROJECT_RATE_STR;
				case PROJECT_COMPARISION:
					return PROJECT_COMPARISION_STR;
				default:
					return "";
			}
		}

		public static Integer getBrandLocationInExcel(Integer brand,int index) {
			int titleSize =3;
			switch (brand) {
				case WAN_DA:
					return 6+  (index * 6);
				default:
					return 3 + (index * 6);
			}
		}
	}

	public static final class ComplaintReport {

		public static final int TECHNICIST = 0;
		public static final String TECHNICIST_STR = "技术人员";
		public static final int MANAGER = 1;
		public static final String MANAGEER_STR = "大区经理";
	}


}
